package com.feige.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.feige.pojo.User;
import com.feige.pojo.UserCourse;
import com.feige.pojo.vo.UserVo;
import com.feige.result.AjaxResult;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 用户课程表 服务类
 * </p>
 *
 * @author feige
 * @since 2020-11-20
 */
public interface UserCourseService extends IService<UserCourse> {
    /**
     * 加入课程
     * @param userCourse
     * @return
     */
    AjaxResult joinCourse(UserCourse userCourse);

    /**
     *  分页查询课程用户
     * @author: feige
     * @date: 2021/3/2 16:33
     * @param	courseId
     * @param	pageNum
     * @return: java.util.List<com.feige.pojo.User>
     */
    List<User> getCourseUser(String courseId, Integer pageNum);

    /**
     * 查询课程用户数
     * @author: feige
     * @date: 2021/3/2 17:22
     * @param	courseId
     * @return: int
     */
    int getCourseUserCount(String courseId);

    /**
     * 通过课程ID获取对应课程的用户ID
     * @param courseId 课程ID
     * @param userId 该课程的创建者
     * @return
     */
    List<Object> getUserIdsByCourseId(String courseId,String userId);

    /**
     * 把用户踢出课程
     * @param userId
     * @param courseId
     * @return
     */
    AjaxResult kickOut(String userId, String courseId);

    /**
     * 查询课程的所有用户
     * @param courseId
     * @return
     */
    List<UserVo> getCourseUserVoByCourseId(@Param("courseId") String courseId);
}
